For many applications, there is a need for a way to encode and decode auxiliary information in an audio signal. It is challenging to design encoders and decoders that embed such auxiliary information so that it is substantially imperceptible, yet recoverable and robust to various forms of manipulation.
The invention relates to methods, systems, and devices for encoding and decoding auxiliary codes in audio signals. One aspect of the invention is a method of steganographically encoding auxiliary data into audio. In this method, a processor maps the auxiliary data to samples in the audio data. The auxiliary data comprises message symbols, each symbol carried by a code signal having plural elements, and the plural elements are mapped to the samples in the audio data. A processor modifies the mapping of the auxiliary data to the samples over time. Symbols in the plural bits are represented with different, plural element code signals. A processor modifies a feature of the samples of the audio data to which the code signals are mapped to convey the auxiliary data substantially imperceptibly in the audio data.
Another aspect of the invention is a method of steganographically encoding auxiliary data into audio. In this method, a processor maps the auxiliary data to samples in the audio data and modifies the mapping of the auxiliary data to the samples over time. A processor modifies a feature of the audio data to convey the auxiliary data substantially imperceptibly in the audio data. The auxiliary data comprises a binary code, and elements of the binary code are redundantly encoded in the audio such that the binary code is decodable from portions of the audio. Elements of the binary code are spread over non-overlapping portions of the audio. Instances of the auxiliary data are repeated in the audio such that there is border continuity among the instances of the auxiliary data. In another aspect, the auxiliary data is concentrated at a frequency range so that the auxiliary data in the audio is likely to survive losses due to compression of the audio.
Another aspect of the invention is a method of decoding an auxiliary code embedded in an audio signal. In this method, a processor performs decoding of a multibit auxiliary code embedded in an audio signal. A processor decodes code values of the auxiliary code from two or more different portions of the audio signal, each having the multibit auxiliary code. A processor combines the code values decoded from the two or more different portions of the audio signal to determine the code values of the auxiliary code. Code signals for corresponding bits of the multibit auxiliary code are used to detect the auxiliary code, and the code signals are varied over time to vary representation of the auxiliary code in the audio over time. The code signal for a bit of the auxiliary code has elements that correspond to plural elements in the audio signal and is embedded by modifying the plural elements of the audio signal as a function of the plural elements.
Another aspect of the invention is a method of decoding an auxiliary code embedded in an audio signal. The method receives an audio signal suspected of being embedded with an auxiliary code. A processor is used to evaluate plural samples of a portion of the audio signal to decode a value of the auxiliary code from the audio signal. The auxiliary code is conveyed using different plural element code signals for different bit positions of the auxiliary code, with at least one of the code signals that varies over time. A processor determines a code value in the auxiliary code based on combining detection of the different code signals from different portions of time.
Another aspect of the invention is a method of decoding an auxiliary code embedded in an audio signal. This method receives an audio signal suspected of being embedded with an auxiliary code. A processor evaluates a feature of a portion of the audio signal to decode code a value of the auxiliary code from the audio signal. The auxiliary code is conveyed using a carrier that varies over time. A processor determines a code value in the auxiliary code based on the feature. The auxiliary code comprises a code that triggers transmission of information about the audio signal from a decoding device to a service provider.
There are a variety of possible uses of the auxiliary code extracted from an audio signal. These include a code that enables or disables recording capabilities, a copyright identification code, a code used to monitor a broadcast of the audio signal, a code that triggers transmission of information about the audio signal from a decoding device to a service provider. The auxiliary code may also be used to generate a report indicating how the audio signal is being used.
These encoding decoding methods may be employed for many different applications, including those summarized above. Both methods may be implemented in hardware, software or a combination of hardware and software.
The foregoing and additional features and advantages will be more readily apparent from the following detailed description, which proceeds with reference to the accompanying drawings.